/*
封装axios 作为全局的网络请求对象
提供一些公共配置


 */
//修复http
import axios from "axios";
import router from "@/router/index.js";
import {ElMessage} from "element-plus";

//
//1.创建axios 对象实例 是单例全局
const http = axios.create({
    //1.1 公共前戳  是读取配置文件动态切换
    baseURL: import.meta.env.VITE_API_URL,
    //1.2请求超时时间
    timeout: 5000,
    withCredentials: true
})

//2. 请求拦截器与响应拦截器
http.interceptors.request.use(config => {
    let token = sessionStorage.getItem("token");
    if (token) {
        config.headers["Authorization"] = token
    }
    return config;
})
//resp 响应体 resp.data ==> 实际数据 resp.data.data
http.interceptors.response.use(response => {
        return response.data
    },
    error => {
        if (error.response.status === 401) {
            ElMessage.error("请登录");
            sessionStorage.removeItem("token");
            router.push('/login')
        }
        return Promise.reject(error);
    }
);
export default http;

